#!/bin/bash
# Tehdessään pitkää skriptiä täytyy skriptintekijän päätellä mihin asti skriptiä toiminta on oikea ja missävaiheessa alkaa toimia väärin.
# perinteisesti tämä on aikaansaatu kirjoittamalla runsaasti echoja. Siinä on vain se vika, että se teettää töitä, käytettäessä skriptiä tulostuu joskus paljon ja koodiakin tulee lisää.  
# Tämä 'alias-funktio' kertoo mistä ohjelmasta, miltä rivinumerolta ja mistä funktiosta sitä on kutsuttu ja tulostaa myöskin annettujan muuttujien
# nimet ja arvot. Se on aika ruma mutta jos skriptinsä aloittaa aina noilla alias- ja funktio-ohoh määrittelyillä on ominaisuus aina käytettävissä
# eivätkä lisärivit toimintaa häiritse, käyttää niitä tai ei.
# BASH:ista löytyy tähän ongelmaan varmaan parempikin ratkaisu. Mutta esimerkki esittääkin kuinka osoittimet toimivat BASH:issa.

shopt -s expand_aliases
alias yyyy='test ${FUNCNAME[0]} && echo "ohjelma:"${BASH_SOURCE}" Rivino:"${LINENO}" Funktio:"${FUNCNAME[0]} || echo "ohjelma:"${BASH_SOURCE}" Rivino:"${LINENO}'

function ohoh () {
#n=1; while true; do eval $(apu= \$$n) ; let n++ ; [[ ${!apu} ]] && echo  $apu'  arvo: '${!apu} || break; done
[[ $1 ]] && echo  $1'  arvo: '${!1}
[[ $2 ]] && echo  $2'  arvo: '${!2}
[[ $3 ]] && echo  $3'  arvo: '${!3}
[[ $4 ]] && echo  $4'  arvo: '${!4}
[[ $5 ]] && echo  $5'  arvo: '${!5}
[[ $6 ]] && echo  $6'  arvo: '${!6}
[[ $7 ]] && echo  $7'  arvo: '${!7}
[[ $8 ]] && echo  $8'  arvo: '${!8}
[[ $9 ]] && echo  $9'  arvo: '${!9}
echo ''
read -p "paina enter jatkaakseesi" apu
}

# tästä eteenpäin tämä skripti vain testaa onko toiminta oikea.
function kasti {
koe11=11111
koe12=0
koe13="katto"
moneskoLie=44444
yyyy; ohoh koe11 koe12 koe13 moneskoLie
}

koe1=-255
koe2=56
koe3=57
koe4=-444
koe5=5
koe6=35
koe7=6666665
koe8=1
koe9=78355
yyyy; ohoh koe1 koe2 koe4 koe3 koe5 koe6 koe7 koe8 koe9 
kasti

